package cn.iocoder.yudao.module.trade.order.vo;

import cn.iocoder.yudao.module.api.product.sku.dto.PriceRespDTO;
import cn.iocoder.yudao.module.api.product.sku.dto.ProductPropertyValueRespDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.List;

/**
 * <pre>
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 *  这里是文件说明
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 * </pre>
 *
 * @author 山野羡民（1032694760@qq.com）
 * @since 2025/02/06
 */
@Data
public class AppTradeOrderSettlementItemRespVO extends PriceRespDTO {

    // ========== SPU 信息 ==========

    @Schema(description = "品类编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048")
    private Long categoryId;
    @Schema(description = "SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048")
    private Long spuId;
    @Schema(description = "SPU 名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "Apple iPhone 12")
    private String spuName;

    // ========== SKU 信息 ==========

    @Schema(description = "SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private Long skuId;
    @Schema(description = "图片地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://exmaple.local/1.png")
    private String picUrl;

    @Schema(description = "属性数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
    private List<ProductPropertyValueRespDTO> properties;

    // ========== 购物车信息 ==========

    @Schema(description = "购物车编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
    private Long cartId;

    @Schema(description = "购买数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Integer count;

    @Schema(description = "计量单位", requiredMode = Schema.RequiredMode.REQUIRED, example = "件")
    private String unitName;

    @Schema(description = "计量数值", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Integer unitValue;

    @Schema(description = "产品重量，单位：kg 千克", example = "0")
    private Double weight;

}
